﻿Imports ControleMatricula.Negocio

Public Class FrmPagamento

    Public Const strIncluirConfirmar As String = "Confirmar &Inclusão"
    Public Const strIncluir As String = "&Incluir"
    Public Const strAlterarConfirmar As String = "Confirmar &Alteração"
    Public Const strAlterar As String = "&Alterar"
    Dim db As New DataClassesDataContext()
    Dim RowPagamento As SPPagamentoConsultarResult

    Private Sub BtnIncluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnIncluir.Click

        If BtnIncluir.Text = strIncluir Then
            txtDEPagamento.Enabled = True
            GroupBox3.Enabled = False
            STAtivo.Enabled = True
            STAVista.Enabled = True
            STPrazo.Enabled = True
            BtnAlterar.Enabled = False
            BtnConsultar.Enabled = False
            BtnIncluir.Text = strIncluirConfirmar
            LimparCampos(Me)
            STAtivo.Checked = True
        Else
            If Trim(txtDEPagamento.Text) = "" Then
                MsgBox("Preenchimento do Campo Descrição obrigatório!")
                txtDEPagamento.Focus()
                Exit Sub
            End If

            If (STAVista.Checked = False AndAlso STPrazo.Checked = False) Then
                MsgBox("É obrigatório que o pagamento seja definido como À Vista ou Prazo!")
                STAVista.Focus()
                Exit Sub
            End If

            If (STAVista.Checked = True AndAlso STPrazo.Checked = True) Then
                MsgBox("Forma de Pagamento de possuir somente uma classificação À Vista ou Prazo!")
                STAVista.Focus()
                Exit Sub
            End If

            If Not Trim(txtDEPagamento.Text) = "" Then
                Dim Retorno As New List(Of SPPagamentoConsultarResult)
                Retorno = db.SPPagamentoConsultar(0, txtDEPagamento.Text).ToList()
                If Retorno.Count > 0 Then
                    If txtDEPagamento.Text = Retorno(0).DEPagamento Then
                        MsgBox("Esta forma de pagamento já está cadastrado!", MsgBoxStyle.Information)
                        txtDEPagamento.Focus()
                        Exit Sub
                    End If
                End If
            End If

            If STBoleto.Checked Then
                If cmbEspecifica.Text = String.Empty OrElse cmbEspecifica.Text = "" Then
                    MsgBox("Quando forma de pagamento Boleto o campo Específico deve ser selecionado!")
                    cmbEspecifica.Focus()
                    Exit Sub
                End If

                If txtCDBanco.Text = String.Empty OrElse txtCDBanco.Text = "" Then
                    MsgBox("O Código do Banco deve ser específicado para pagamento Boleto!")
                    txtCDBanco.Focus()
                    Exit Sub
                End If

                If txtAgencia.Text = String.Empty OrElse txtAgencia.Text = "" Then
                    MsgBox("A Agência deve ser específicada para pagamento Boleto!")
                    txtAgencia.Focus()
                    Exit Sub
                End If

                If txtConta.Text = String.Empty OrElse txtConta.Text = "" Then
                    MsgBox("A Conta deve ser específicada para pagamento Boleto!")
                    txtConta.Focus()
                    Exit Sub
                End If

                If txtCarteira.Text = String.Empty OrElse txtCarteira.Text = "" Then
                    MsgBox("A Carteira deve ser específicada para pagamento Boleto!")
                    txtCarteira.Focus()
                    Exit Sub
                End If

                If txtInstrucao.Text = String.Empty OrElse txtInstrucao.Text = "" Then
                    MsgBox("O campo Instrução deve ser específicado para pagamento Boleto!")
                    txtInstrucao.Focus()
                    Exit Sub
                End If

                If txtCedente.Text = String.Empty OrElse txtCedente.Text = "" Then
                    MsgBox("O campo Cedente deve ser específicado para pagamento Boleto!")
                    txtCedente.Focus()
                    Exit Sub
                End If
            End If

            db.SPPagamentoIncluir(txtDEPagamento.Text, IIf(STAVista.Checked, True, False), IIf(STPrazo.Checked, True, False), IIf(STAtivo.Checked, True, False), IIf(STCheque.Checked, True, False), IIf(STBoleto.Checked, True, False), cmbEspecifica.SelectedValue, CInt(txtCDBanco.Text), txtAgencia.Text, txtConta.Text, txtCarteira.Text, Replace(Trim(RTrim(txtInstrucao.Text)), Chr(10), " "), txtCedente.Text).ToString()

            'txtCDFuncionario.Text = Convert.ToString(RowFuncionarioIncluido.IDFuncionario)


            txtDEPagamento.Enabled = False
            GroupBox3.Enabled = False
            STAVista.Enabled = False
            STPrazo.Enabled = False
            STAtivo.Enabled = False
            BtnAlterar.Enabled = False
            BtnConsultar.Enabled = True
            BtnIncluir.Enabled = True
            BtnIncluir.Text = strIncluir


            MsgBox("Forma de Pagamento incluido com sucesso!", MsgBoxStyle.Information)

        End If

    End Sub

    Private Sub BtnConsultar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConsultar.Click

        Dim FrmPagamentoConsultar As FrmPagamentoConsultar
        FrmPagamentoConsultar = New FrmPagamentoConsultar
        FrmPagamentoConsultar.Owner = Me
        FrmPagamentoConsultar.ShowDialog()

        If Not IsNothing(FrmPagamentoConsultar.RowPagamento) Then
            RowPagamento = FrmPagamentoConsultar.RowPagamento

            txtCDPagamento.Text = RowPagamento.IDPagamento
            txtDEPagamento.Text = RowPagamento.DEPagamento
            STAVista.Checked = IIf(RowPagamento.STAVista, True, False)
            STPrazo.Checked = IIf(RowPagamento.STPrazo, True, False)
            STAtivo.Checked = IIf(RowPagamento.STAtivo, True, False)
            STCheque.Checked = IIf(RowPagamento.STCheque, True, False)
            STBoleto.Checked = IIf(RowPagamento.STBoleto, True, False)
            If (Not IsNothing(RowPagamento.IDEspecifica)) AndAlso RowPagamento.IDEspecifica <> 0 Then
                cmbEspecifica.SelectedValue = RowPagamento.IDEspecifica
                txtCDBanco.Text = RowPagamento.CDBanco.ToString.PadLeft(3, "0")
                txtAgencia.Text = RowPagamento.Agencia
                txtConta.Text = RowPagamento.Conta
                txtCarteira.Text = RowPagamento.Carteira
                txtCedente.Text = RowPagamento.Cedente
                txtInstrucao.Text = cLibrary.FromDBValue(RowPagamento.Instrucao, String.Empty)
            End If

            BtnAlterar.Enabled = True
            btnCancelar.Enabled = True

        End If

    End Sub

    Private Sub FrmPagamento_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        txtDEPagamento.Enabled = False
        GroupBox3.Enabled = False
        STAtivo.Enabled = False
        STAVista.Enabled = False
        STPrazo.Enabled = False
        BtnAlterar.Enabled = False
        BtnConsultar.Enabled = True
        BtnIncluir.Enabled = True

        MontarComboEspecifica(cmbEspecifica)

    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click

        txtDEPagamento.Enabled = False
        GroupBox3.Enabled = False
        STAtivo.Enabled = False
        STAVista.Enabled = False
        STPrazo.Enabled = False
        BtnAlterar.Enabled = False
        BtnConsultar.Enabled = True
        BtnIncluir.Enabled = True
        BtnIncluir.Text = strIncluir
        btnCancelar.Text = strAlterar
        LimparCampos(Me)

    End Sub

    Private Sub BtnAlterar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnAlterar.Click

        If sender.text = strAlterar Then
            txtDEPagamento.Enabled = True
            If STBoleto.Checked Then
                GroupBox3.Enabled = True
            Else
                GroupBox3.Enabled = False
            End If
            STAVista.Enabled = True
            STPrazo.Enabled = True
            STAtivo.Enabled = True
            BtnAlterar.Text = strAlterarConfirmar
            BtnConsultar.Enabled = False
            BtnIncluir.Enabled = False
        Else
            If (STAVista.Checked = False AndAlso STPrazo.Checked = False) Then
                MsgBox("É obrigatório que o pagamento seja definido como À Vista ou Prazo!")
                STAVista.Focus()
                Exit Sub
            End If

            If (STAVista.Checked = True AndAlso STPrazo.Checked = True) Then
                MsgBox("Forma de Pagamento de possuir somente uma classificação À Vista ou Prazo!")
                STAVista.Focus()
                Exit Sub
            End If

            If STBoleto.Checked Then
                If cmbEspecifica.Text = String.Empty OrElse cmbEspecifica.Text = "" Then
                    MsgBox("Quando forma de pagamento Boleto o campo Específico deve ser selecionado!")
                    cmbEspecifica.Focus()
                    Exit Sub
                End If

                If txtCDBanco.Text = String.Empty OrElse txtCDBanco.Text = "" Then
                    MsgBox("O Código do Banco deve ser específicado para pagamento Boleto!")
                    txtCDBanco.Focus()
                    Exit Sub
                End If

                If txtAgencia.Text = String.Empty OrElse txtAgencia.Text = "" Then
                    MsgBox("A Agência deve ser específicada para pagamento Boleto!")
                    txtAgencia.Focus()
                    Exit Sub
                End If

                If txtConta.Text = String.Empty OrElse txtConta.Text = "" Then
                    MsgBox("A Conta deve ser específicada para pagamento Boleto!")
                    txtConta.Focus()
                    Exit Sub
                End If

                If txtCarteira.Text = String.Empty OrElse txtCarteira.Text = "" Then
                    MsgBox("A Carteira deve ser específicada para pagamento Boleto!")
                    txtCarteira.Focus()
                    Exit Sub
                End If

                If txtInstrucao.Text = String.Empty OrElse txtInstrucao.Text = "" Then
                    MsgBox("O campo Instrução deve ser específicado para pagamento Boleto!")
                    txtInstrucao.Focus()
                    Exit Sub
                End If

                If txtCedente.Text = String.Empty OrElse txtCedente.Text = "" Then
                    MsgBox("O campo Cedente deve ser específicado para pagamento Boleto!")
                    txtCedente.Focus()
                    Exit Sub
                End If
            End If

            Dim Id As Integer
            Id = Convert.ToInt32(txtCDPagamento.Text)

            db.SPPagamentoAlterar(Id, txtDEPagamento.Text, IIf(STAVista.Checked = True, True, False), IIf(STPrazo.Checked = True, True, False), IIf(STAtivo.Checked = True, True, False), IIf(STCheque.Checked, True, False), IIf(STBoleto.Checked, True, False), cmbEspecifica.SelectedValue, CInt(txtCDBanco.Text), txtAgencia.Text, txtConta.Text, txtCarteira.Text, Replace(Trim(RTrim(txtInstrucao.Text)), Chr(10), " "), txtCedente.Text).ToString()

            txtDEPagamento.Enabled = False
            GroupBox3.Enabled = False
            STAVista.Enabled = False
            STPrazo.Enabled = False
            STAtivo.Enabled = False
            BtnAlterar.Text = strAlterar
            BtnConsultar.Enabled = True
            BtnIncluir.Enabled = True

            MsgBox("Pagamento alterado com sucesso!", MsgBoxStyle.Information)
        End If

    End Sub

    Private Sub STBoleto_CheckedChanged(sender As Object, e As System.EventArgs) Handles STBoleto.CheckedChanged
        If STBoleto.Checked Then
            GroupBox3.Enabled = True
        Else
            GroupBox3.Enabled = False
        End If
    End Sub
End Class